﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BusinessLogicLayer;
using BusinessEntities;
using System.Text.RegularExpressions;

namespace QL_HoSoBA
{
    public partial class frmBacSi : Form
    {
        public frmBacSi()
        {
            InitializeComponent();
        }

        public static frmHeThong frm = new frmHeThong();
        public static string taikhoan = "", matkhau = "", chucvu = "", manv = "", tennv = "", phongkham = "";
        private static HoSoBA_Manager hoso = new HoSoBA_Manager();
        private static TiepNhanBN_Manager tiepnhan = new TiepNhanBN_Manager();
        private static PhieuDieuTri_Manager phieudt = new PhieuDieuTri_Manager();
        private static PhieuTheoDoi_Manager phieutd = new PhieuTheoDoi_Manager();
        private int TongSoBN;

        #region Show TabControls theo chỉ mục
        public void ShowForm(int index)
        {
            switch (index)
            {
                case 0:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 820;
                    break;
                case 1:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 820;
                    break;
                case 2:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 700;
                    break;
                case 3:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 700;
                    break;
                case 4:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 600;
                    break;
                case 5:
                    tabControlKhamBenh.SelectTab(index);
                    tabControlKhamBenh.Show();
                    this.Height = 820;
                    break;
            }
        }
        #endregion

        #region Xử lí sự kiện Form Load và load dữ liệu lên Form
        private void frmKhamBenh_Load(object sender, EventArgs e)
        {
            LoadData();
            taikhoan = frmHeThong.taikhoan;
            matkhau = frmHeThong.matkhau;
            chucvu = frmHeThong.chucvu;
            manv = frmHeThong.manv;
            tennv = frmHeThong.tennv;
            LoadDSBA1();
        }

        private void LoadData()
        {
            cbbNhomBenh.DataSource = hoso.NhomBenh_All();
            cbbNhomBenh.DisplayMember = "TenNhomBenh";
            cbbNhomBenh1.DataSource = hoso.NhomBenh_All();
            cbbNhomBenh1.DisplayMember = "TenNhomBenh";
            cbbPhongBenh.DataSource = hoso.PhongBenhDT_All();
            cbbPhongBenh.DisplayMember = "Tên phòng";
            cbbPhongBenh1.DataSource = hoso.PhongBenhDT_All();
            cbbPhongBenh1.DisplayMember = "Tên phòng";
            cbbGiuongBenh2.DataSource = hoso.GiuongBenhDT_All();
            cbbGiuongBenh2.DisplayMember = "Giường Bệnh";
            phongkham = frmHeThong.phongkham;
            cbbMaBNCho.DataSource = hoso.PhongKham_DSMaBNCho(phongkham);
            //cbbMaBNCho.DataSource = hoso.PhongKham_DSMaBNCho("Phòng khám 2");
            cbbMaBNCho.DisplayMember = "MaBN";
            cbbDoiTuong2.DataSource = tiepnhan.DoiTuong_All();
            cbbDoiTuong2.DisplayMember = "TenDT";
            cbbPhongBenh2.DataSource = hoso.PhongBenhDT_All();
            cbbPhongBenh2.DisplayMember = "Tên phòng";
            LoadPhongBenh();
        }

        private void LoadData1()
        {
            cbbPhongBenh1.DataSource = hoso.PhongBenhDT_All();
            cbbPhongBenh1.DisplayMember = "Tên phòng";
            //cbbMaBNCho.DataSource = hoso.PhongKham_DSMaBNCho("Phòng khám 2");
            LoadPhongBenh();
        }

        private void LoadPhongBenh()
        {
            grwPhongBenh.DataSource = hoso.PhongBenhDT_All();
            grwPhongBenh.DataSource = hoso.PhongBenh_TongBN_DieuTri();
            grwPhongBenh.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwPhongBenh.Columns[0].Width = 130;
            grwPhongBenh.Columns[1].Width = 130;
            //grwPhongBenh.Columns[2].Width = 100;
        }

        private void LoadDSBNKham()
        {
            grwDSBNKham.DataSource = hoso.HoSoBA_Kham_TrongNgay_BS(manv);
            grwDSBNKham.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            CanChinh(grwDSBNKham);
        }

        private void LoadDSBA1()
        {
            grwDSBA1.DataSource = hoso.HoSoBA_DSLoad(manv);
            grwDSBA1.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwDSBA1.Columns[0].Width = 80;
            grwDSBA1.Columns[1].Width = 120;
            grwDSBA1.Columns[2].Width = 120;

            grwDSBA2.DataSource = hoso.HoSoBA_DSLoad_NgoaiTru(manv);
            grwDSBA2.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwDSBA2.Columns[0].Width = 80;
            grwDSBA2.Columns[1].Width = 120;
            grwDSBA2.Columns[2].Width = 140;

            grwDSBA3.DataSource = hoso.HoSoBA_DSLoad(manv);
            grwDSBA3.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwDSBA3.Columns[0].Width = 80;
            grwDSBA3.Columns[1].Width = 120;
            grwDSBA3.Columns[2].Width = 120;

            grwDSBN5.DataSource = hoso.HoSoBA_DSLoad(manv);
            grwDSBN5.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwDSBN5.Columns[0].Width = 80;
            grwDSBN5.Columns[1].Width = 120;
            grwDSBN5.Columns[2].Width = 120;
        }

        private void CanChinh(DataGridView grw)
        {
            grw.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grw.Columns[0].Width = 80;
            grw.Columns[1].Width = 80;
            grw.Columns[2].Width = 150;
            grw.Columns[3].Width = 150;
            grw.Columns[4].Width = 120;
            grw.Columns[5].Width = 120;
            grw.Columns[6].Width = 120;
            grw.Columns[7].Width = 150;
            grw.Columns[8].Width = 150;
            grw.Columns[9].Width = 200;
            grw.Columns[10].Width = 120;
            grw.Columns[11].Width = 300;
            grw.Columns[12].Width = 300;
            grw.Columns[13].Width = 300;
            grw.Columns[14].Width = 120;
            grw.Columns[15].Width = 120;
            grw.Columns[16].Width = 120;
            grw.Columns[17].Width = 120;
            grw.Columns[18].Width = 120;
            grw.Columns[19].Width = 220;
        }

        private void CanChinh1(DataGridView grw)
        {
            grw.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grw.Columns[0].Width = 80;
            grw.Columns[1].Width = 80;
            grw.Columns[2].Width = 150;
            grw.Columns[3].Width = 150;
            grw.Columns[4].Width = 120;
            grw.Columns[5].Width = 120;
            grw.Columns[6].Width = 120;
            grw.Columns[7].Width = 150;
            grw.Columns[8].Width = 150;
            grw.Columns[9].Width = 200;
            grw.Columns[10].Width = 120;
            grw.Columns[11].Width = 300;
            grw.Columns[12].Width = 300;
            grw.Columns[13].Width = 300;
            grw.Columns[14].Width = 120;
            grw.Columns[15].Width = 120;
            grw.Columns[16].Width = 120;
            grw.Columns[17].Width = 120;
            grw.Columns[18].Width = 120;
            grw.Columns[19].Width = 120;
            grw.Columns[20].Width = 220;
        }

        private void CanChinh2(DataGridView grw)
        {
            grw.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grw.Columns[0].Width = 80;
            grw.Columns[1].Width = 80;
            grw.Columns[2].Width = 150;
            grw.Columns[3].Width = 150;
            grw.Columns[4].Width = 150;
            grw.Columns[5].Width = 120;
            grw.Columns[6].Width = 100;
            grw.Columns[7].Width = 100;
            grw.Columns[8].Width = 100;
            grw.Columns[9].Width = 120;
            grw.Columns[10].Width = 100;
            grw.Columns[11].Width = 300;
            grw.Columns[12].Width = 120;
            grw.Columns[13].Width = 300;
            grw.Columns[14].Width = 300;
            grw.Columns[15].Width = 300;
            grw.Columns[16].Width = 150;
            grw.Columns[17].Width = 150;
            grw.Columns[18].Width = 150;
            grw.Columns[19].Width = 120;
            grw.Columns[20].Width = 120;
            grw.Columns[21].Width = 150;
            grw.Columns[22].Width = 300;
            grw.Columns[23].Width = 300;
            grw.Columns[24].Width = 300;
        }

        #region Xử lý sự kiện chỉ cho nhập số vào textbox
        private void txtNhapSo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }
        #endregion
        #endregion

        #region Sự kiện khi phòng bệnh thay đổi thì lấy giường bệnh theo phòng bệnh
        private void cbbPhongBenh_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                cbbGiuongBenh.DataSource = hoso.GiuongBenhDT_LayTheoPhongBenh(cbbPhongBenh.Text);
                cbbGiuongBenh.DisplayMember = "GiuongBenh";
            }
            catch { }
        }

        private void cbbPhongBenh1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                cbbGiuongBenh1.DataSource = hoso.GiuongBenhDT_LayTheoPhongBenh(cbbPhongBenh1.Text);
                cbbGiuongBenh1.DisplayMember = "GiuongBenh";
            }
            catch { }
        }
        #endregion

        #region Xử lí sự kiện khi mã bệnh nhân chờ được chọn, thì sẽ load thông tin bệnh nhân theo mã bn
        private void cbbMaBNCho_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                DataTable tb = tiepnhan.TiepNhanBN_TimTheoMaBN(cbbMaBNCho.Text);
                if (tb.Rows.Count > 0)
                {
                    dtpNgayNhapVien.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtHoTen.Text = tb.Rows[0][3].ToString();
                    dtpNgaySinh.Value = DateTime.Parse(tb.Rows[0][4].ToString());
                    txtTuoi.Text = tb.Rows[0][5].ToString();
                    txtGioiTinh.Text = tb.Rows[0][6].ToString();
                    txtDanToc.Text = tb.Rows[0][7].ToString();
                    txtNgheNghiep.Text = tb.Rows[0][8].ToString();
                    txtSDT.Text = tb.Rows[0][9].ToString();
                    txtDiaChi.Text = tb.Rows[0][10].ToString();
                    txtDoiTuong.Text = tb.Rows[0][11].ToString();
                    errorProvider1.Clear();
                    errorProvider2.Clear();
                    errorProvider3.Clear();
                    btnTiepNhan.Enabled = true;
                    errorProvider6.Clear();
                }
                else
                {
                    btnTiepNhan.Enabled = false;
                    errorProvider6.Clear();
                }
            }
            catch { }
        }
        #endregion

        #region Xử lí sự kiện khi chọn loại hình điều trị
        private void rdNoiTru_CheckedChanged(object sender, EventArgs e)
        {
            cbbGiuongBenh.Enabled = true;
            cbbPhongBenh.Enabled = true;
            dtpHenNgayKham.Enabled = false;
            errorProvider6.Clear();
        }

        private void rdNgoaiTru_CheckedChanged(object sender, EventArgs e)
        {
            cbbGiuongBenh.Enabled = false;
            cbbPhongBenh.Enabled = false;
            dtpHenNgayKham.Enabled = true;
            errorProvider5.Clear();
        }
        #endregion

        #region Xử lí sự kiện tiếp nhận bệnh nhân
        private void btnTiepNhan_Click(object sender, EventArgs e)
        {
            string dieutri = "";
            if (rdNoiTru.Checked)
                dieutri = "Nội trú";
            if (rdNgoaiTru.Checked)
                dieutri = "Ngoại trú";
            try
            {
                if (KiemTraNhap())
                {
                    if (rdNoiTru.Checked)
                    {
                        string maba = cbbMaBNCho.Text;
                        if (MessageBox.Show("Bạn có muốn thêm không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            int kq = hoso.HoSoBA_Them_NoiTru(new HoSoBA_Info(txtMaBA.Text, cbbMaBNCho.Text, dtpNgayNhapVien.Value, txtHoTen.Text,
                                dtpNgaySinh.Value, int.Parse(txtTuoi.Text), txtGioiTinh.Text, txtDanToc.Text, txtNgheNghiep.Text, txtSDT.Text,
                                GomKhoangTrang(txtDiaChi.Text).Trim(), GomKhoangTrang(txtDoiTuong.Text).Trim(), GomKhoangTrang(txtTrieuChung.Text).Trim(),
                                GomKhoangTrang(txtChuanDoan.Text).Trim(), GomKhoangTrang(txtYLenh.Text).Trim(), cbbNhomBenh.Text, cbbNhomMau.Text,
                                dieutri, cbbPhongBenh.Text, cbbGiuongBenh.Text, manv, tennv));
                            if (kq > 0)
                            {
                                TongSoBN = int.Parse(hoso.PhongBenhDT_TimTheoPhongBenh(cbbPhongBenh.Text).Rows[0][2].ToString());
                                hoso.PhongBenhDT_CapNhatSLBN(cbbPhongBenh.Text, TongSoBN + 1);
                                tiepnhan.TiepNhanBN_CapNhat_Kham(int.Parse(cbbMaBNCho.Text), "Đã khám");
                                MessageBox.Show("Thêm thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                LoadData();
                                btnNhapMoi.PerformClick();
                                HuyThongTinBN();
                                TongSoBN = TongSoBN + 1;
                                if (cbbMaBNCho.Text == "")
                                    btnTiepNhan.Enabled = false;
                                else
                                    btnTiepNhan.Enabled = true;
                                LoadDSBA1();
                                grwDSBNKham.DataSource = hoso.HoSoBA_Kham_TimTheoMaBN(maba);
                                CanChinh(grwDSBNKham);
                                return;
                            }
                            else
                                MessageBox.Show("Thêm thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                            return;
                    }
                    if (rdNgoaiTru.Checked)
                    {
                        if (MessageBox.Show("Bạn có muốn thêm không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            string maba1 = cbbMaBNCho.Text;
                            int kq2 = hoso.HoSoBA_Them_NgoaiTru(new HoSoBA_Info(txtMaBA.Text, cbbMaBNCho.Text, dtpNgayNhapVien.Value, txtHoTen.Text,
                                dtpNgaySinh.Value, int.Parse(txtTuoi.Text), txtGioiTinh.Text, txtDanToc.Text, txtNgheNghiep.Text, txtSDT.Text,
                                GomKhoangTrang(txtDiaChi.Text).Trim(), GomKhoangTrang(txtDoiTuong.Text).Trim(), GomKhoangTrang(txtTrieuChung.Text).Trim(),
                                GomKhoangTrang(txtChuanDoan.Text).Trim(), GomKhoangTrang(txtYLenh.Text).Trim(), cbbNhomBenh.Text, cbbNhomMau.Text,
                                dieutri, dtpHenNgayKham.Value, manv, tennv));
                            if (kq2 > 0)
                            {
                                MessageBox.Show("Thêm thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                TongSoBN = int.Parse(hoso.PhongBenhDT_TimTheoPhongBenh(cbbPhongBenh.Text).Rows[0][2].ToString());
                                hoso.PhongBenhDT_CapNhatSLBN(cbbPhongBenh.Text, TongSoBN + 1);
                                tiepnhan.TiepNhanBN_CapNhat_Kham(int.Parse(cbbMaBNCho.Text), "Đã khám");
                                LoadData();
                                btnNhapMoi.PerformClick();
                                HuyThongTinBN();
                                TongSoBN = TongSoBN + 1;
                                dtpHenNgayKham.Value = DateTime.Now;
                                LoadDSBA1();
                                errorProvider6.Clear();
                                grwDSBNKham.DataSource = hoso.HoSoBA_Kham_TimTheoMaBN_NgoaiTru(maba1);
                                CanChinh(grwDSBNKham);
                                return;
                            }
                            else
                                MessageBox.Show("Thêm thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                            return;
                    }
                    else
                        MessageBox.Show("Bạn chưa chọn loại hình điều trị !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                    MessageBox.Show("Dữ liệu nhập không hợp lệ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch
            { }
        }
        #endregion

        #region Cập nhật hồ sơ bệnh án
        private void btnCapNhat1_Click(object sender, EventArgs e)
        {
            string dieutri1 = "";
            if (rdNoiTru.Checked)
                dieutri1 = "Nội trú";
            if (rdNgoaiTru.Checked)
                dieutri1 = "Ngoại trú";
            try
            {
                if (KiemTraNhap1())
                {

                    if (rdNoiTru1.Checked)
                    {
                        if (MessageBox.Show("Bạn có muốn cập nhật không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            int kq = hoso.HoSoBA_CapNhat_NoiTru(new HoSoBA_Info(txtMaBA1.Text, txtMaBN1.Text, dtpNgayNhapVien1.Value, txtHoTen1.Text,
                                dtpNgaySinh1.Value, int.Parse(txtTuoi1.Text), txtGioiTinh1.Text, txtDanToc1.Text, txtNgheNghiep1.Text, txtDienThoai1.Text,
                                GomKhoangTrang(txtDiaChi1.Text).Trim(), GomKhoangTrang(txtDoiTuong1.Text).Trim(), GomKhoangTrang(txtTrieuChung1.Text).Trim(),
                                GomKhoangTrang(txtChuanDoan1.Text).Trim(), GomKhoangTrang(txtYLenh1.Text).Trim(), cbbNhomBenh1.Text, cbbNhomMau1.Text,
                                dieutri1, cbbPhongBenh1.Text, cbbGiuongBenh1.Text, manv, tennv));
                            if (kq > 0)
                            {
                                MessageBox.Show("Cập nhật thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                TongSoBN = int.Parse(hoso.PhongBenhDT_TimTheoPhongBenh(cbbPhongBenh1.Text).Rows[0][2].ToString());
                                hoso.PhongBenhDT_CapNhatSLBN(cbbPhongBenh1.Text, TongSoBN);
                                grwDSHS1.DataSource = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(txtMaBA1.Text));
                                CanChinh1(grwDSHS1);
                                LoadDSBA1();
                                return;
                            }
                            else
                                MessageBox.Show("Cập nhật thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                            return;
                    }

                    if (rdNgoaiTru1.Checked)
                    {
                        if (MessageBox.Show("Bạn có muốn cập nhật không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            int kq = hoso.HoSoBA_CapNhat_NgoaiTru(new HoSoBA_Info(txtMaBA1.Text, txtMaBN1.Text, dtpNgayNhapVien1.Value, txtHoTen1.Text,
                                dtpNgaySinh1.Value, int.Parse(txtTuoi1.Text), txtGioiTinh1.Text, txtDanToc1.Text, txtNgheNghiep1.Text, txtDienThoai1.Text,
                                GomKhoangTrang(txtDiaChi1.Text).Trim(), GomKhoangTrang(txtDoiTuong1.Text).Trim(), GomKhoangTrang(txtTrieuChung1.Text).Trim(),
                                GomKhoangTrang(txtChuanDoan1.Text).Trim(), GomKhoangTrang(txtYLenh1.Text).Trim(), cbbNhomBenh1.Text, cbbNhomMau1.Text,
                                dieutri1, dtpHenNgay1.Value, manv, tennv));
                            if (kq > 0)
                            {
                                MessageBox.Show("Cập nhật thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                grwDSHS1.DataSource = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(txtMaBA1.Text));
                                CanChinh1(grwDSHS1);
                                LoadDSBA1();
                                return;
                            }
                            else
                                MessageBox.Show("Cập nhật thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                            return;
                    }
                }
                else
                    MessageBox.Show("Dữ liệu nhập không hợp lệ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch
            { }
        }
        #endregion

        #region xử lí sự kiện xóa trắng nhập liệu
        private void HuyThongTinBN()
        {
            if (cbbMaBNCho.Text == "")
            {
                txtMaBA.Text = "";
                dtpNgayNhapVien.Value = DateTime.Now;
                txtHoTen.Text = "";
                dtpNgaySinh.Value = DateTime.Now;
                txtTuoi.Text = "";
                txtGioiTinh.Text = "";
                txtDanToc.Text = "";
                txtNgheNghiep.Text = "";
                txtSDT.Text = "";
                txtDiaChi.Text = "";
                txtDoiTuong.Text = "";
                errorProvider1.Clear();
                errorProvider2.Clear();
                errorProvider3.Clear();
                errorProvider4.Clear();
                errorProvider5.Clear();
            }
        }
        #endregion

        #region xử lí sự kiện click vào danh sách hồ sơ nội trú hoặc ngoại trú
        private void grwDSBA1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                string MaBA = grwDSBA1.Rows[row].Cells[0].Value.ToString();
                DataTable tb = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(MaBA));
                if (tb.Rows.Count > 0)
                {
                    txtMaBA1.Text = tb.Rows[0][0].ToString();
                    txtMaBN1.Text = tb.Rows[0][1].ToString();
                    dtpNgayNhapVien1.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtHoTen1.Text = tb.Rows[0][3].ToString();
                    dtpNgaySinh1.Value = DateTime.Parse(tb.Rows[0][4].ToString());
                    txtTuoi1.Text = tb.Rows[0][5].ToString();
                    txtGioiTinh1.Text = tb.Rows[0][6].ToString();
                    txtDanToc1.Text = tb.Rows[0][7].ToString();
                    txtNgheNghiep1.Text = tb.Rows[0][8].ToString();
                    txtDienThoai1.Text = tb.Rows[0][9].ToString();
                    txtDiaChi1.Text = tb.Rows[0][10].ToString();
                    txtDoiTuong1.Text = tb.Rows[0][11].ToString();
                    txtTrieuChung1.Text = tb.Rows[0][12].ToString();
                    txtChuanDoan1.Text = tb.Rows[0][13].ToString();
                    txtYLenh1.Text = tb.Rows[0][14].ToString();
                    cbbNhomBenh1.Text = tb.Rows[0][15].ToString();
                    cbbNhomMau1.Text = tb.Rows[0][16].ToString();
                    rdNoiTru1.Checked = true;
                    rdNgoaiTru1.Checked = false;
                    cbbPhongBenh1.Text = tb.Rows[0][18].ToString();
                    cbbGiuongBenh1.Text = tb.Rows[0][19].ToString();
                    dtpHenNgay1.Enabled = false;
                    errorProvider12.Clear();
                }
            }
            catch { }

        }

        private void grwDSBA2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                string MaBA = grwDSBA2.Rows[row].Cells[0].Value.ToString();
                DataTable tb = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(MaBA));
                if (tb.Rows.Count > 0)
                {
                    txtMaBA1.Text = tb.Rows[0][0].ToString();
                    txtMaBN1.Text = tb.Rows[0][1].ToString();
                    dtpNgayNhapVien1.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtHoTen1.Text = tb.Rows[0][3].ToString();
                    dtpNgaySinh1.Value = DateTime.Parse(tb.Rows[0][4].ToString());
                    txtTuoi1.Text = tb.Rows[0][5].ToString();
                    txtGioiTinh1.Text = tb.Rows[0][6].ToString();
                    txtDanToc1.Text = tb.Rows[0][7].ToString();
                    txtNgheNghiep1.Text = tb.Rows[0][8].ToString();
                    txtDienThoai1.Text = tb.Rows[0][9].ToString();
                    txtDiaChi1.Text = tb.Rows[0][10].ToString();
                    txtDoiTuong1.Text = tb.Rows[0][11].ToString();
                    txtTrieuChung1.Text = tb.Rows[0][12].ToString();
                    txtChuanDoan1.Text = tb.Rows[0][13].ToString();
                    txtYLenh1.Text = tb.Rows[0][14].ToString();
                    cbbNhomBenh1.Text = tb.Rows[0][15].ToString();
                    cbbNhomMau1.Text = tb.Rows[0][16].ToString();
                    rdNoiTru1.Checked = false;
                    rdNgoaiTru1.Checked = true;
                    dtpHenNgay1.Value = DateTime.Parse(tb.Rows[0][20].ToString());
                    cbbGiuongBenh1.Enabled = false;
                    cbbPhongBenh1.Enabled = false;
                    errorProvider12.Clear();
                }
            }
            catch { }
        }
        #endregion

        #region Hàm xử lí sự kiện trên Form: Load, nhập mới, thoát
        private void btnLoad_Click(object sender, EventArgs e)
        {
            LoadDSBNKham();
            grwDSBNKham.DataSource = hoso.HoSoBA_TimTheoMaBS(manv);
            grwDSBNKham.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            CanChinh(grwDSBNKham);
        }

        private void btnNhapMoi_Click(object sender, EventArgs e)
        {
            txtTrieuChung.Clear();
            txtChuanDoan.Clear();
            txtYLenh.Clear();
            cbbNhomMau.Text = "";
            rdNoiTru.Checked = true;
            cbbGiuongBenh.Enabled = true;
            cbbPhongBenh.Enabled = true;
            dtpHenNgayKham.Enabled = false;
            dtpHenNgayKham.Value = DateTime.Now;
            LoadData();
            errorProvider1.Clear();
            errorProvider2.Clear();
            errorProvider3.Clear();
            errorProvider4.Clear();
            errorProvider5.Clear();
            errorProvider6.Clear();
            grwDSBNKham.DataSource = new object();
            //cbbNhomBenh.DataSource = hoso.NhomBenh_All();
            //cbbNhomBenh.DisplayMember = "TenNhomBenh";
        }

        private void btnNhapMoi1_Click(object sender, EventArgs e)
        {
            txtTrieuChung1.Clear();
            txtChuanDoan1.Clear();
            txtYLenh1.Clear();
            cbbNhomMau1.Text = "";
            rdNoiTru1.Checked = true;
            cbbGiuongBenh1.Enabled = true;
            cbbPhongBenh1.Enabled = true;
            dtpHenNgay1.Enabled = false;
            dtpHenNgay1.Value = DateTime.Now;
            txtMaBA1.Clear();
            errorProvider7.Clear();
            errorProvider8.Clear();
            errorProvider9.Clear();
            grwDSHS1.DataSource = new object();
        }

        private void btnLoad1_Click(object sender, EventArgs e)
        {
            grwDSHS1.DataSource = hoso.HoSoBA_TimTheoMaBS(manv);
            grwDSHS1.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            CanChinh(grwDSHS1);
        }

        private void btnLoad3_Click(object sender, EventArgs e)
        {
            grwPDT1.DataSource = phieudt.PhieuDieuTri_All_MaBS(manv);
            CanChinh3(grwPDT1);
        }

        private void btnCapNhat3_Click(object sender, EventArgs e)
        {
            try
            {
                if (KiemTraNhap3())
                {
                    if (MessageBox.Show("Bạn có muốn cập nhật không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        int kq = phieudt.PhieuDieuTri_CapNhat_NoiTru(new PhieuDieuTri_Info(txtMaPhieuDT.Text, int.Parse(txtMaBA3.Text),
                            dtpThoiGianGhi3.Value, txtYLenh3.Text, manv, tennv));
                        if (kq > 0)
                        {
                            MessageBox.Show("Cập nhật thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            grwPDT1.DataSource = phieudt.PhieuDieuTri_MaPhieu(int.Parse(txtMaPhieuDT.Text));
                            CanChinh3(grwPDT1);
                            return;
                        }
                        else
                            MessageBox.Show("Cập nhật thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                        return;
                }
                else
                    MessageBox.Show("Dữ liệu nhập không hợp lệ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch { }
        }

        private void grwPDT1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                string MaPhieu = grwPDT1.Rows[row].Cells[0].Value.ToString();
                DataTable tb = phieudt.PhieuDieuTri_MaPhieu(int.Parse(MaPhieu));
                if (tb.Rows.Count > 0)
                {
                    txtMaPhieuDT.Text = tb.Rows[0][0].ToString();
                    txtMaBA3.Text = tb.Rows[0][1].ToString();
                    dtpThoiGianGhi3.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtYLenh3.Text = tb.Rows[0][3].ToString();

                    DataTable tb1 = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(txtMaBA3.Text));
                    if (tb1.Rows.Count > 0)
                    {
                        dtpNgayNhapVien3.Value = DateTime.Parse(tb1.Rows[0][2].ToString());
                        txtHoTen3.Text = tb1.Rows[0][3].ToString();
                        txtTuoi3.Text = tb1.Rows[0][5].ToString();
                        txtGioiTinh3.Text = tb1.Rows[0][6].ToString();
                        txtTrieuChung3.Text = tb1.Rows[0][12].ToString();
                        txtChuanDoan3.Text = tb1.Rows[0][13].ToString();
                        txtNhomBenh3.Text = tb1.Rows[0][15].ToString();
                        txtNhomMau3.Text = tb1.Rows[0][16].ToString();
                        btnCapNhat3.Enabled = true;
                        btnGhi3.Enabled = false;
                    }
                }
            }
            catch
            { }
        }

        private void btnLoad2_Click(object sender, EventArgs e)
        {
            grwDSHS2.DataSource = hoso.HoSoBA_Kham_All(manv);
            CanChinh2(grwDSHS2);
            btnXoa2.Enabled = true;
        }

        private void grwDSBA3_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                string MaBA = grwDSBA3.Rows[row].Cells[0].Value.ToString();
                DataTable tb = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(MaBA));
                if (tb.Rows.Count > 0)
                {
                    txtMaBA3.Text = tb.Rows[0][0].ToString();
                    dtpNgayNhapVien3.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtHoTen3.Text = tb.Rows[0][3].ToString();
                    txtTuoi3.Text = tb.Rows[0][5].ToString();
                    txtGioiTinh3.Text = tb.Rows[0][6].ToString();
                    txtTrieuChung3.Text = tb.Rows[0][12].ToString();
                    txtChuanDoan3.Text = tb.Rows[0][13].ToString();
                    txtNhomBenh3.Text = tb.Rows[0][15].ToString();
                    txtNhomMau3.Text = tb.Rows[0][16].ToString();
                    btnGhi3.Enabled = true;
                    btnCapNhat3.Enabled = false;
                    try
                    {
                        DataTable tb1 = phieudt.PhieuDieuTri_MaBA_TrongNgay(int.Parse(txtMaBA3.Text));
                        if (tb1.Rows.Count > 0)
                        {
                            txtMaPhieuDT.Text = tb1.Rows[0][0].ToString();
                            dtpThoiGianGhi3.Value = DateTime.Parse(tb1.Rows[0][2].ToString());
                            txtYLenh3.Text = tb1.Rows[0][3].ToString();
                            btnGhi3.Enabled = true;
                            btnCapNhat3.Enabled = false;
                        }
                        else
                        {
                            txtMaPhieuDT.Text = "";
                            dtpThoiGianGhi3.Value = DateTime.Now;
                            txtYLenh3.Text = "";
                        }
                    }
                    catch
                    { }
                    errorProvider14.Clear();
                }
            }
            catch { }

        }
        #endregion

        #region xử lí sự kiện kiểm tra dữ liệu nhập
        private bool KiemTraNhap()
        {
            bool kq = true;
            if (txtChuanDoan.Text.Trim() == "" || txtTrieuChung.Text.Trim() == "" || txtYLenh.Text.Trim() == "")
            {
                if (txtChuanDoan.Text.Trim() == "")
                    errorProvider1.SetError(txtChuanDoan, "Bạn chưa nhập dữ liệu !");
                if (txtTrieuChung.Text.Trim() == "")
                    errorProvider2.SetError(txtTrieuChung, "Bạn chưa nhập dữ liệu !");
                if (txtYLenh.Text.Trim() == "")
                    errorProvider3.SetError(txtYLenh, "Bạn chưa nhập dữ liệu !");
                kq = false;
            }
            if (rdNoiTru.Checked)
            {
                if (cbbPhongBenh.Text.Trim() == "")
                {
                    errorProvider4.SetError(cbbPhongBenh, "Bạn chưa nhập dữ liệu !");
                    kq = false;
                }
                if (cbbGiuongBenh.Text.Trim() == "")
                {
                    errorProvider5.SetError(cbbGiuongBenh, "Bạn chưa nhập dữ liệu !");
                    kq = false;
                }
            }
            if (rdNgoaiTru.Checked)
            {
                if (dtpHenNgayKham.Value.ToShortDateString() == DateTime.Now.ToShortDateString())
                {
                    if (dtpHenNgayKham.Value.Hour < DateTime.Now.Hour)
                    {
                        errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                        kq = false;
                    }
                    else
                    {
                        if (dtpHenNgayKham.Value.Hour == DateTime.Now.Hour && dtpHenNgayKham.Value.Minute - 15 < DateTime.Now.Minute)
                        {
                            errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                            kq = false;
                        }
                        else
                            errorProvider6.Clear();
                    }
                }
                else
                {
                    if ((dtpHenNgayKham.Value.Day < DateTime.Now.Day && dtpHenNgayKham.Value.Month ==
                        DateTime.Now.Month && dtpHenNgayKham.Value.Year == DateTime.Now.Year) ||
                        (dtpHenNgayKham.Value.Month < DateTime.Now.Month &&
                        dtpHenNgayKham.Value.Year == DateTime.Now.Year) ||
                        (dtpHenNgayKham.Value.Year < DateTime.Now.Year))
                    {
                        kq = false;
                        errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                    }
                    else
                        errorProvider6.Clear();
                }
            }
            return kq;
        }

        private bool KiemTraNhap1()
        {
            bool kq = true;
            if (txtChuanDoan1.Text.Trim() == "" || txtTrieuChung1.Text.Trim() == "" || txtYLenh1.Text.Trim() == "")
            {
                if (txtChuanDoan1.Text.Trim() == "")
                    errorProvider7.SetError(txtChuanDoan1, "Bạn chưa nhập dữ liệu !");
                if (txtTrieuChung1.Text.Trim() == "")
                    errorProvider8.SetError(txtTrieuChung1, "Bạn chưa nhập dữ liệu !");
                if (txtYLenh1.Text.Trim() == "")
                    errorProvider9.SetError(txtYLenh1, "Bạn chưa nhập dữ liệu !");
                kq = false;
            }
            if (rdNoiTru1.Checked)
            {
                if (cbbPhongBenh1.Text.Trim() == "")
                {
                    errorProvider10.SetError(cbbPhongBenh1, "Bạn chưa nhập dữ liệu !");
                    kq = false;
                }
                if (cbbGiuongBenh1.Text.Trim() == "")
                {
                    errorProvider11.SetError(cbbGiuongBenh1, "Bạn chưa nhập dữ liệu !");
                    kq = false;
                }
            }
            if (rdNgoaiTru1.Checked)
            {
                if (dtpHenNgay1.Value.ToShortDateString() == DateTime.Now.ToShortDateString())
                {
                    if (dtpHenNgay1.Value.Hour < DateTime.Now.Hour)
                    {
                        errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                        kq = false;
                    }
                    else
                    {
                        if (dtpHenNgay1.Value.Hour == DateTime.Now.Hour && dtpHenNgay1.Value.Minute - 15 < DateTime.Now.Minute)
                        {
                            errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                            kq = false;
                        }
                        else
                            errorProvider12.Clear();
                    }
                }
                else
                {
                    if ((dtpHenNgay1.Value.Day < DateTime.Now.Day && dtpHenNgay1.Value.Month ==
                        DateTime.Now.Month && dtpHenNgay1.Value.Year == DateTime.Now.Year) ||
                        (dtpHenNgay1.Value.Month < DateTime.Now.Month &&
                        dtpHenNgay1.Value.Year == DateTime.Now.Year) ||
                        (dtpHenNgay1.Value.Year < DateTime.Now.Year))
                    {
                        kq = false;
                        errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                    }
                    else
                        errorProvider12.Clear();
                }
            }
            return kq;
        }

        private string GomKhoangTrang(string str)
        {
            string strPattern = @"[\s]+";
            Regex rgx = new Regex(strPattern);
            string Ouput = rgx.Replace(str, " ");
            return Ouput.Trim();
        }
        #endregion

        #region Xử lí sự kiện khi thay đổi dữ liệu nhập trên các ô
        private void txtTrieuChung_TextChanged(object sender, EventArgs e)
        {
            if (txtTrieuChung.Text.Trim() != "")
                errorProvider1.Clear();
            else
                errorProvider1.SetError(txtTrieuChung, "Dữ liệu nhập không hợp lệ !");
        }

        private void txtChuanDoan_TextChanged(object sender, EventArgs e)
        {
            if (txtChuanDoan.Text.Trim() != "")
                errorProvider2.Clear();
            else
                errorProvider2.SetError(txtChuanDoan, "Dữ liệu nhập không hợp lệ !");
        }

        private void txtYLenh_TextChanged(object sender, EventArgs e)
        {
            if (txtYLenh.Text.Trim() != "")
                errorProvider3.Clear();
            else
                errorProvider3.SetError(txtYLenh, "Dữ liệu nhập không hợp lệ !");
        }

        private void dtpGioHen_ValueChanged(object sender, EventArgs e)
        {
            if (dtpHenNgayKham.Value.ToShortDateString() == DateTime.Now.ToShortDateString())
            {
                if (dtpHenNgayKham.Value.Hour < DateTime.Now.Hour)
                {
                    errorProvider5.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                }
                else
                {
                    if (dtpHenNgayKham.Value.Hour == DateTime.Now.Hour && dtpHenNgayKham.Value.Minute < DateTime.Now.Minute)
                    {
                        errorProvider5.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                    }
                    else
                        errorProvider5.Clear();
                }
            }
        }

        private void cbbGiuongBenh_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbGiuongBenh.Text == "")
                errorProvider5.SetError(cbbGiuongBenh, "Bạn chưa chọn giường bệnh !");
            else
                errorProvider5.Clear();
        }

        private void dtpHenNgayKham_ValueChanged(object sender, EventArgs e)
        {
            if (dtpHenNgayKham.Value.ToShortDateString() == DateTime.Now.ToShortDateString())
            {
                if (dtpHenNgayKham.Value.Hour < DateTime.Now.Hour)
                {
                    errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                    return;
                }
                else
                {
                    if (dtpHenNgayKham.Value.Hour == DateTime.Now.Hour && dtpHenNgayKham.Value.Minute - 15 < DateTime.Now.Minute)
                    {
                        errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                        return;
                    }
                    else
                        errorProvider6.Clear();
                }
            }
            if ((dtpHenNgayKham.Value.Day < DateTime.Now.Day && dtpHenNgayKham.Value.Month ==
                DateTime.Now.Month && dtpHenNgayKham.Value.Year == DateTime.Now.Year) ||
                (dtpHenNgayKham.Value.Month < DateTime.Now.Month &&
                dtpHenNgayKham.Value.Year == DateTime.Now.Year) ||
                (dtpHenNgayKham.Value.Year < DateTime.Now.Year))
            {
                errorProvider6.SetError(dtpHenNgayKham, "Thời gian không hợp lệ !");
                return;
            }
            else
                errorProvider6.Clear();
        }

        private void rdNoiTru1_CheckedChanged(object sender, EventArgs e)
        {
            if (rdNoiTru1.Checked)
            {
                cbbPhongBenh1.Enabled = true;
                cbbGiuongBenh1.Enabled = true;
                errorProvider12.Clear();
            }
        }

        private void rdNgoaiTru1_CheckedChanged(object sender, EventArgs e)
        {
            if (rdNgoaiTru1.Checked)
            {
                dtpHenNgay1.Enabled = true;
                cbbGiuongBenh1.Enabled = false;
                cbbPhongBenh1.Enabled = false;
            }
        }

        private void tabControlKhamBenh_SelectedIndexChanged(object sender, EventArgs e)
        {
            LoadData();
            int index = tabControlKhamBenh.SelectedIndex;
            switch (index)
            {
                case 0:
                    this.Height = 820;
                    break;
                case 1:
                    this.Height = 820;
                    break;
                case 2:
                    this.Height = 700;
                    break;
                case 3:
                    this.Height = 700;
                    break;
                case 4:
                    this.Height = 600;
                    break;
                case 5:
                    this.Height = 820;
                    break;
            }
        }

        private void txtTrieuChung1_TextChanged(object sender, EventArgs e)
        {
            if (txtTrieuChung1.Text.Trim() == "")
                errorProvider8.SetError(txtTrieuChung1, "Bạn chưa nhập dữ liệu !");
            else
                errorProvider8.Clear();
        }

        private void txtChuanDoan1_TextChanged(object sender, EventArgs e)
        {
            if (txtChuanDoan1.Text.Trim() == "")
                errorProvider7.SetError(txtChuanDoan1, "Bạn chưa nhập dữ liệu !");
            else
                errorProvider7.Clear();
        }

        private void txtYLenh1_TextChanged(object sender, EventArgs e)
        {
            if (txtYLenh1.Text.Trim() == "")
                errorProvider9.SetError(txtYLenh1, "Bạn chưa nhập dữ liệu !");
            else
                errorProvider9.Clear();
        }

        private void cbbGiuongBenh1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbGiuongBenh1.Text.Trim() == "")
                errorProvider11.SetError(cbbGiuongBenh1, "Dữ liệu nhập chọn không hợp lệ !");
            else
                errorProvider11.Clear();
        }

        private void dtpHenNgay1_ValueChanged(object sender, EventArgs e)
        {
            if (dtpHenNgay1.Value.ToShortDateString() == DateTime.Now.ToShortDateString())
            {
                if (dtpHenNgay1.Value.Hour < DateTime.Now.Hour)
                {
                    errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                    return;
                }
                else
                {
                    if (dtpHenNgay1.Value.Hour == DateTime.Now.Hour && dtpHenNgay1.Value.Minute - 15 < DateTime.Now.Minute)
                    {
                        errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                        return;
                    }
                    else
                        errorProvider12.Clear();
                }
            }
            else
            {
                if ((dtpHenNgay1.Value.Day < DateTime.Now.Day && dtpHenNgay1.Value.Month ==
                    DateTime.Now.Month && dtpHenNgay1.Value.Year == DateTime.Now.Year) ||
                    (dtpHenNgay1.Value.Month < DateTime.Now.Month &&
                    dtpHenNgay1.Value.Year == DateTime.Now.Year) ||
                    (dtpHenNgay1.Value.Year < DateTime.Now.Year))
                {
                    errorProvider12.SetError(dtpHenNgay1, "Thời gian không hợp lệ !");
                    return;
                }
                else
                    errorProvider12.Clear();
            }
        }
        #endregion

        #region Ghi phiếu điều trị
        private void CanChinh3(DataGridView grw)
        {
            try
            {
                grw.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                    System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                grw.Columns[0].Width = 100;
                grw.Columns[1].Width = 100;
                grw.Columns[2].Width = 150;
                grw.Columns[3].Width = 750;
            }
            catch { }
        }

        private void btnGhi3_Click(object sender, EventArgs e)
        {
            try
            {
                if (KiemTraNhap3())
                {
                    if (MessageBox.Show("Bạn có muốn thêm không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        int kq = phieudt.PhieuDieuTri_Them_NoiTru(new PhieuDieuTri_Info(txtMaPhieuDT.Text, int.Parse(txtMaBA3.Text),
                            dtpThoiGianGhi3.Value, txtYLenh3.Text, manv, tennv));
                        if (kq > 0)
                        {
                            MessageBox.Show("Thêm thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            btnNhapMoi3.PerformClick();
                            grwPDT1.DataSource = phieudt.PhieuDieuTri_All_MaBS(manv);
                            CanChinh3(grwPDT1);
                            return;
                        }
                        else
                            MessageBox.Show("Bệnh nhân đã có phiếu điều trị trong ngày !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                        return;
                }
                else
                    MessageBox.Show("Dữ liệu nhập không hợp lệ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch { }

        }

        // Kiểm tra dữ liệu nhập cho quá trình ghi phiếu điều trị
        private bool KiemTraNhap3()
        {
            bool kq = true;
            if (txtYLenh3.Text.Trim() == "")
            {
                if (txtYLenh3.Text.Trim() == "")
                    errorProvider14.SetError(txtYLenh3, "Bạn chưa nhập dữ liệu !");
                kq = false;
            }
            else
            {
                errorProvider14.Clear();
                kq = true;
            }
            return kq;
        }


        private void txtYLenh3_TextChanged(object sender, EventArgs e)
        {
            if (txtYLenh3.Text == "")
                errorProvider14.SetError(txtYLenh3, "Dữ liệu nhập không hợp lệ !");
            else
                errorProvider14.Clear();
        }
        #endregion

        #region Xử lí dự kiện khi lựa chọn hình thức tìm kiếm
        private int chon;
        private int LayChon()
        {
            if (chkMaBA.Checked)
                chon = 0;
            if (chkMaBN.Checked)
                chon = 1;
            if (chkNgayNhapVien.Checked)
                chon = 2;
            if (chkThangNhapVien.Checked)
                chon = 3;
            if (chkNamNhapVien.Checked)
                chon = 4;
            if (chkHoTen.Checked)
                chon = 5;
            if (chkNhomTuoi.Checked)
                chon = 6;
            if (chkDoiTuong.Checked)
                chon = 7;
            if (chkPhongBenh.Checked)
                chon = 8;
            if (chkGiuongBenh.Checked)
                chon = 9;
            if (chkLoaiHinhDieuTri.Checked)
                chon = 10;
            if (chkDangDieuTri.Checked)
                chon = 11;
            if (chkDaXuatVien.Checked)
                chon = 12;
            return chon;
        }

        private string t1 = "", t2 = "";
        private void LayNhomTuoi()
        {
            if (cbbNhomTuoi2.Text == "0 - 6")
            {
                this.t1 = "0"; this.t2 = "6";
            }
            if (cbbNhomTuoi2.Text == "7 - 15")
            {
                t1 = "7"; t2 = "15";
            }
            if (cbbNhomTuoi2.Text == "16 - 30")
            {
                t1 = "16"; t2 = "30";
            }
            if (cbbNhomTuoi2.Text == "31 - 45")
            {
                t1 = "31"; t2 = "45";
            }
            if (cbbNhomTuoi2.Text == "46 - 60")
            {
                t1 = "46"; t2 = "60";
            }
            if (cbbNhomTuoi2.Text == "61 trở lên")
            {
                t1 = "61"; t2 = "130";
            }

        }

        private void cbbNhomTuoi2_SelectedIndexChanged(object sender, EventArgs e)
        {
            LayNhomTuoi();
        }

        private void AnChon()
        {
            chkMaBA.Enabled = false;
            chkMaBN.Enabled = false;
            chkDoiTuong.Enabled = false;
            chkHoTen.Enabled = false;
            chkNgayNhapVien.Enabled = false;
            chkThangNhapVien.Enabled = false;
            chkNamNhapVien.Enabled = false;
            chkNhomTuoi.Enabled = false;
            chkPhongBenh.Enabled = false;
            chkGiuongBenh.Enabled = false;
            chkDaXuatVien.Enabled = false;
            chkDangDieuTri.Enabled = false;
            chkLoaiHinhDieuTri.Enabled = false;
        }

        private void HienChon()
        {
            chkMaBA.Enabled = true;
            chkMaBN.Enabled = true;
            chkDoiTuong.Enabled = true;
            chkHoTen.Enabled = true;
            chkNgayNhapVien.Enabled = true;
            chkThangNhapVien.Enabled = true;
            chkNamNhapVien.Enabled = true;
            chkNhomTuoi.Enabled = true;
            chkPhongBenh.Enabled = true;
            chkGiuongBenh.Enabled = true;
            chkDaXuatVien.Enabled = true;
            chkDangDieuTri.Enabled = true;
            chkLoaiHinhDieuTri.Enabled = true;
        }

        private void AnNhap()
        {
            txtHoTen2.Enabled = false;
            txtMaBN2.Enabled = false;
            txtMaBA2.Enabled = false;
            cbbNhomTuoi2.Enabled = false;
            cbbPhongBenh2.Enabled = false;
            dtpNgayNhapVien2.Enabled = false;
            dtpThangNhapVien2.Enabled = false;
            dtpNamNhapVien2.Enabled = false;
            cbbDoiTuong2.Enabled = false;
            cbbGiuongBenh2.Enabled = false;
            rdNoiTru2.Enabled = false;
            rdNgoaiTru2.Enabled = false;
            rdNoiTru2.Checked = true;
            //dtpThangNhapVien2.Value = DateTime.Now.Date;
            //dtpNamNhapVien2.Value = DateTime.Now.Date;
            //dtpNgayNhapVien2.Value = DateTime.Now.Date;
            chkMaBA.Checked = false;
            chkMaBN.Checked = false;
            chkDoiTuong.Checked = false;
            chkHoTen.Checked = false;
            chkNgayNhapVien.Checked = false;
            chkThangNhapVien.Checked = false;
            chkNamNhapVien.Checked = false;
            chkNhomTuoi.Checked = false;
            chkPhongBenh.Checked = false;
            chkGiuongBenh.Checked = false;
            chkDaXuatVien.Checked = false;
            chkDangDieuTri.Checked = false;
            chkLoaiHinhDieuTri.Checked = false;
        }

        private void NhapMoi()
        {
            txtHoTen2.Text = "";
            txtMaBN2.Text = "";
            txtMaBA2.Text = "";
            cbbNhomTuoi2.Text = "";
            cbbPhongBenh2.Text = "";
            cbbDoiTuong2.Text = "";
            cbbGiuongBenh2.Text = "";
            rdNoiTru2.Checked = true;
            //dtpThangNhapVien2.Value = DateTime.Now.Date;
            //dtpNamNhapVien2.Value = DateTime.Now.Date;
            //dtpNgayNhapVien2.Value = DateTime.Now.Date;
            grwDSHS2.DataSource = new object();
            txtTongSo2.Clear();
        }

        private void btnTimKiem2_Click(object sender, EventArgs e)
        {
            LayChon();
            switch (chon)
            {
                case 0:
                    if (txtMaBA2.Text.Trim() != "")
                    {
                        DataTable dt = hoso.HoSoBA_TimTheoMaBA_MaBS(int.Parse(txtMaBA2.Text), manv);
                        if (dt.Rows.Count != 0)
                        {
                            grwDSHS2.DataSource = dt;
                            CanChinh2(grwDSHS2);
                            txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                            btnXoa2.Enabled = true;
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Mã bệnh án [" + txtMaBA2.Text + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwDSHS2.DataSource = new object();
                            txtTongSo2.Clear();
                            btnXoa2.Enabled = false;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập mã bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 1:
                    if (txtMaBN2.Text.Trim() != "")
                    {
                        try
                        {
                            DataTable dt = hoso.HoSoBA_TimTheoMaBN_MaBS(manv, int.Parse(txtMaBN2.Text));
                            if (dt.Rows.Count != 0)
                            {
                                grwDSHS2.DataSource = dt;
                                CanChinh2(grwDSHS2);
                                txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                                btnXoa2.Enabled = true;
                                return;
                            }
                            else
                            {
                                MessageBox.Show("Mã bệnh nhân [" + txtMaBN2.Text + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                grwDSHS2.DataSource = new object();
                                txtTongSo2.Clear();
                                btnXoa2.Enabled = false;
                                return;
                            }
                        }
                        catch
                        { }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập mã bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 2:
                    DataTable dt1 = hoso.HoSoBA_TimTheoNgayNhapVien_MaBS(manv, dtpNgayNhapVien2.Value);
                    if (dt1.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt1;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Ngày [" + dtpNgayNhapVien2.Value.ToShortDateString() + "] không có hồ sơ lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 3:
                    DataTable dt2 = hoso.HoSoBA_TimTheoThangNhapVien_MaBS(manv, dtpThangNhapVien2.Value);
                    if (dt2.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt2;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Tháng [" + dtpThangNhapVien2.Value.Month.ToString() + "/" + dtpThangNhapVien2.Value.Year.ToString() + "] không có hồ sơ lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;
                case 4:
                    DataTable dt3 = hoso.HoSoBA_TimTheoNamNhapVien_MaBS(manv, dtpNamNhapVien2.Value);
                    if (dt3.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt3;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Năm [" + dtpNamNhapVien2.Value.Year.ToString() + "] không có hồ sơ lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 5:
                    if (txtHoTen2.Text.Trim() != "")
                    {
                        DataTable dt = hoso.HoSoBA_TimTheoHoTenBN_MaBS(manv, GomKhoangTrang(txtHoTen2.Text).Trim());
                        if (dt.Rows.Count != 0)
                        {
                            grwDSHS2.DataSource = dt;
                            CanChinh2(grwDSHS2);
                            txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                            btnXoa2.Enabled = true;
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Họ tên bệnh nhân [" + GomKhoangTrang(txtHoTen2.Text).Trim() + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwDSHS2.DataSource = new object();
                            txtTongSo2.Clear();
                            btnXoa2.Enabled = false;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập họ tên bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 6:
                    if (cbbNhomTuoi2.Text.Trim() != "")
                    {
                        DataTable dt6 = hoso.HoSoBA_TimTheoNhomTuoi_MaBS(manv, int.Parse(t1), int.Parse(t2));
                        if (dt6.Rows.Count != 0)
                        {
                            grwDSHS2.DataSource = dt6;
                            CanChinh2(grwDSHS2);
                            txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                            btnXoa2.Enabled = true;
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Nhóm tuổi [" + cbbNhomTuoi2.Text + "] không có trong danh sách bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwDSHS2.DataSource = new object();
                            txtTongSo2.Clear();
                            btnXoa2.Enabled = false;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa chọn nhóm tuổi !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 7:
                    DataTable dt9 = hoso.HoSoBA_TimTheoDoiTuong_MaBS(manv, cbbDoiTuong2.Text);
                    if (dt9.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt9;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Đối tượng [" + cbbDoiTuong2.Text + "] không có trong danh sách hồ sơ bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 8:
                    DataTable dt7 = hoso.HoSoBA_TimTheoPhongBenh_MaBS(manv, cbbPhongBenh2.Text);
                    if (dt7.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt7;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Phòng bệnh [" + cbbPhongBenh2.Text + "] không có trong danh sách hồ sơ bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 9:
                    DataTable dt8 = hoso.HoSoBA_TimTheoGiuongBenh_MaBS(manv, cbbGiuongBenh2.Text);
                    if (dt8.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt8;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Giường bệnh [" + cbbGiuongBenh2.Text + "] không có trong danh sách hồ sơ bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 10:
                    string dieutri = "";
                    if (rdNoiTru2.Checked)
                        dieutri = "Nội trú";
                    else
                        dieutri = "Ngoại trú";
                    DataTable dt11 = hoso.HoSoBA_TimTheoDieuTri_MaBS(manv, dieutri);
                    if (dt11.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt11;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Hình thức điều trị [" + dieutri + "] không có trong danh sách hồ sơ bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 11:
                    DataTable dt10 = hoso.HoSoBA_DangDieuTri_MaBS(manv);
                    if (dt10.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt10;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Không có bệnh nhân nào đang điều trị !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;

                case 12:
                    DataTable dt12 = hoso.HoSoBA_DaXuatVien_MaBS(manv);
                    if (dt12.Rows.Count != 0)
                    {
                        grwDSHS2.DataSource = dt12;
                        CanChinh2(grwDSHS2);
                        txtTongSo2.Text = grwDSHS2.RowCount.ToString();
                        btnXoa2.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Không có bệnh nhân nào xuất viện !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwDSHS2.DataSource = new object();
                        txtTongSo2.Clear();
                        btnXoa2.Enabled = false;
                    }
                    break;
            }
        }

        private void btnNhapMoi2_Click(object sender, EventArgs e)
        {
            AnChon();
            AnNhap();
            HienChon();
            NhapMoi();
            btnXoa2.Enabled = false;
            grwDSHS2.DataSource = new object();
            txtTongSo2.Clear();
        }

        private void chkMaBA_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaBA.Checked)
            {
                AnChon();
                NhapMoi();
                chkMaBA.Enabled = true;
                txtMaBA2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;

                btnXoa2.Enabled = false;
            }
        }

        private void chkMaBN_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaBN.Checked)
            {
                AnChon();
                NhapMoi();
                chkMaBN.Enabled = true;
                txtMaBN2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkHoTen_CheckedChanged(object sender, EventArgs e)
        {
            if (chkHoTen.Checked)
            {
                AnChon();
                NhapMoi();
                chkHoTen.Enabled = true;
                txtHoTen2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkNhomTuoi_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNhomTuoi.Checked)
            {
                AnChon();
                NhapMoi();
                chkNhomTuoi.Enabled = true;
                cbbNhomTuoi2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                NhapMoi();
                HienChon();
                AnNhap();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkDoiTuong_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDoiTuong.Checked)
            {
                AnChon();
                NhapMoi();
                chkDoiTuong.Enabled = true;
                cbbDoiTuong2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                NhapMoi();
                HienChon();
                AnNhap();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkPhongBenh_CheckedChanged(object sender, EventArgs e)
        {
            if (chkPhongBenh.Checked)
            {
                AnChon();
                NhapMoi();
                chkPhongBenh.Enabled = true;
                cbbPhongBenh2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                NhapMoi();
                HienChon();
                AnNhap();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkGiuongBenh_CheckedChanged(object sender, EventArgs e)
        {
            if (chkGiuongBenh.Checked)
            {
                AnChon();
                NhapMoi();
                chkGiuongBenh.Enabled = true;
                cbbGiuongBenh2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkThangNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkThangNhapVien.Checked)
            {
                AnChon();
                NhapMoi();
                chkThangNhapVien.Enabled = true;
                dtpThangNhapVien2.Enabled = true;
                dtpThangNhapVien2.MaxDate = DateTime.Now;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkNamNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNamNhapVien.Checked)
            {
                AnChon();
                NhapMoi();
                chkNamNhapVien.Enabled = true;
                dtpNamNhapVien2.Enabled = true;
                dtpNamNhapVien2.MaxDate = DateTime.Now;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkNgayNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNgayNhapVien.Checked)
            {
                AnChon();
                NhapMoi();
                chkNgayNhapVien.Enabled = true;
                dtpNgayNhapVien2.Enabled = true;
                dtpNgayNhapVien2.MaxDate = DateTime.Now;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkLoaiHinhDieuTri_CheckedChanged(object sender, EventArgs e)
        {
            if (chkLoaiHinhDieuTri.Checked)
            {
                AnChon();
                NhapMoi();
                chkLoaiHinhDieuTri.Enabled = true;
                rdNgoaiTru2.Enabled = true;
                rdNoiTru2.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkDangDieuTri_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDangDieuTri.Checked)
            {
                AnChon();
                NhapMoi();
                chkDangDieuTri.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void chkDaXuatVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDaXuatVien.Checked)
            {
                AnChon();
                NhapMoi();
                chkDaXuatVien.Enabled = true;
                btnTimKiem2.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
                NhapMoi();
                btnTimKiem2.Enabled = false;
            }
        }

        private void txtMaBA1_TextChanged(object sender, EventArgs e)
        {
            if (txtMaBA1.Text != "")
                btnCapNhat1.Enabled = true;
            else
            {
                btnCapNhat1.Enabled = false;
                txtMaBN1.Clear();
                txtHoTen1.Clear();
                txtGioiTinh1.Clear();
                txtDiaChi1.Clear();
                txtNgheNghiep1.Clear();
                txtDienThoai1.Clear();
                dtpNgayNhapVien1.Value = DateTime.Now.Date;
                dtpNgaySinh1.Value = DateTime.Now.Date;
                txtDoiTuong1.Clear();
                txtDanToc1.Clear();
                txtTuoi1.Clear();
            }
        }

        private void txtMaBA3_TextChanged(object sender, EventArgs e)
        {
            if (txtMaBA3.Text == "")
                btnGhi3.Enabled = false;
            else
                btnGhi3.Enabled = true;
        }
        #endregion

        #region Phiếu điều trị
        private void txtMaPhieuDT_TextChanged(object sender, EventArgs e)
        {
            if (txtMaPhieuDT.Text.Trim() != "")
                btnCapNhat3.Enabled = true;
            else
                btnCapNhat3.Enabled = false;
        }

        private void grwDSBN5_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                string MaBA = grwDSBN5.Rows[row].Cells[0].Value.ToString();
                DataTable tb = hoso.HoSoBA_Kham_TimTheoMaBA(int.Parse(MaBA));
                if (tb.Rows.Count > 0)
                {
                    txtMaBA5.Text = tb.Rows[0][0].ToString();
                    dtpNgayNhapVien5.Value = DateTime.Parse(tb.Rows[0][2].ToString());
                    txtHoTen5.Text = tb.Rows[0][3].ToString();
                    txtTuoi5.Text = tb.Rows[0][5].ToString();
                    txtGioiTinh5.Text = tb.Rows[0][6].ToString();
                    txtTrieuChung5.Text = tb.Rows[0][12].ToString();
                    txtChuanDoan5.Text = tb.Rows[0][13].ToString();
                    txtNhomBenh5.Text = tb.Rows[0][15].ToString();
                    txtNhomMau5.Text = tb.Rows[0][16].ToString();

                    DataTable tb1 = phieudt.PhieuDieuTri_MaBA(int.Parse(txtMaBA5.Text));
                    string str = "";
                    for (int i = 0; i < tb1.Rows.Count; i++)
                    {
                        str += "Ngày Ghi: " + tb1.Rows[i][2].ToString() + "\n" +
                             "Y Lệnh: " + tb1.Rows[i][3].ToString() + "\n\n";
                    }
                    rtbQuaTrinhDieuTri5.Text = str;

                    DataTable tb2 = phieutd.PhieuTheoDoi_MaBA(int.Parse(txtMaBA5.Text));
                    string str2 = "";
                    for (int i = 0; i < tb2.Rows.Count; i++)
                    {
                        str2 += "Ngày Ghi: " + tb2.Rows[i][2].ToString() + "\n" +
                            "Diễn Biến: " + tb2.Rows[i][3].ToString() + "\n\n";
                    }
                    rtbQuaTrinhTheoDoi5.Text = str2;
                }
            }
            catch { }
        }

        private void btnThoat1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát không ?", "???", MessageBoxButtons.YesNo,
                MessageBoxIcon.Question) == DialogResult.Yes)
                this.Close();
        }

        private void btnNhapMoi3_Click(object sender, EventArgs e)
        {
            txtMaPhieuDT.Clear();
            txtMaBA3.Clear();
            txtHoTen3.Clear();
            txtGioiTinh3.Clear();
            txtNhomBenh3.Clear();
            txtNhomMau3.Clear();
            dtpNgayNhapVien3.Value = DateTime.Now.Date;
            dtpThoiGianGhi3.Value = DateTime.Now;
            txtChuanDoan3.Clear();
            txtTrieuChung3.Clear();
            txtYLenh3.Clear();
            txtTuoi3.Clear();
            errorProvider14.Clear();
            grwPDT1.DataSource = new object();
        }

        private void chkMaPhieu4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaPhieu4.Checked)
            {
                AnChon1();
                NhapMoi1();
                chkMaPhieu4.Enabled = true;
                txtMaPhieu4.Enabled = true;
                btnTimKiem4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
                btnXoa4.Enabled = false;
            }
        }

        private void chkMaBA4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaBA4.Checked)
            {
                AnChon1();
                NhapMoi1();
                chkMaBA4.Enabled = true;
                txtMaBA4.Enabled = true;
                btnTimKiem4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
                btnXoa4.Enabled = false;
            }
        }

        private void chkNgayGhi4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNgayGhi4.Checked)
            {
                AnChon1();
                NhapMoi1();
                chkNgayGhi4.Enabled = true;
                dtpNgayGhi.Enabled = true;
                dtpNgayGhi.MaxDate = DateTime.Now;
                btnTimKiem4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
                btnXoa4.Enabled = false;
            }
        }

        private void chkThangGhi4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkThangGhi4.Checked)
            {
                AnChon1();
                NhapMoi1();
                chkThangGhi4.Enabled = true;
                dtpThangGhi.Enabled = true;
                dtpThangGhi.MaxDate = DateTime.Now;
                btnTimKiem4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
                btnXoa4.Enabled = false;
            }
        }

        private void chkNamGhi4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNamGhi4.Checked)
            {
                AnChon1();
                NhapMoi1();
                chkNamGhi4.Enabled = true;
                dtpNamGhi.Enabled = true;
                dtpNamGhi.MaxDate = DateTime.Now;
                btnTimKiem4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
                btnXoa4.Enabled = false;
            }
        }

        private void AnChon1()
        {
            chkMaBA4.Enabled = false;
            chkMaPhieu4.Enabled = false;
            chkNgayGhi4.Enabled = false;
            chkThangGhi4.Enabled = false;
            chkDaXuatVien4.Enabled = false;
            chkNamGhi4.Enabled = false;
        }

        private void HienChon1()
        {
            chkMaBA4.Enabled = true;
            chkMaPhieu4.Enabled = true;
            chkNgayGhi4.Enabled = true;
            chkThangGhi4.Enabled = true;
            chkNamGhi4.Enabled = true;
            chkDaXuatVien4.Enabled = true;
        }

        private void AnNhap1()
        {
            txtMaPhieu4.Enabled = false;
            txtMaBA4.Enabled = false;
            dtpNgayGhi.Enabled = false;
            dtpThangGhi.Enabled = false;
            dtpNamGhi.Enabled = false;
            dtpThangGhi.Value = DateTime.Now.Date;
            dtpNamGhi.Value = DateTime.Now.Date;
            dtpNgayGhi.Value = DateTime.Now.Date;
        }

        private void NhapMoi1()
        {
            txtMaPhieu4.Text = "";
            txtMaBA4.Text = "";
            dtpThangGhi.Value = DateTime.Now.Date;
            dtpNamGhi.Value = DateTime.Now.Date;
            dtpNgayGhi.Value = DateTime.Now.Date;
            grwPDT2.DataSource = new object();
            txtTongSo3.Clear();
        }

        private int chon1;
        private int LayChon1()
        {
            if (chkMaPhieu4.Checked)
                chon1 = 0;
            if (chkMaBA4.Checked)
                chon1 = 1;
            if (chkNgayGhi4.Checked)
                chon1 = 2;
            if (chkThangGhi4.Checked)
                chon1 = 3;
            if (chkNamGhi4.Checked)
                chon1 = 4;
            if (chkDaXuatVien4.Checked)
                chon1 = 5;
            return chon1;
        }

        private void btnTimKiem4_Click(object sender, EventArgs e)
        {
            LayChon1();
            switch (chon1)
            {
                case 0:
                    if (txtMaPhieu4.Text.Trim() != "")
                    {
                        DataTable dt = phieudt.PhieuDieuTri_TimTheoMaPhieu_MaBS(manv, int.Parse(txtMaPhieu4.Text));
                        if (dt.Rows.Count != 0)
                        {
                            grwPDT2.DataSource = dt;
                            CanChinh3(grwPDT2);
                            txtTongSo3.Text = grwPDT2.RowCount.ToString();
                            btnXoa4.Enabled = true;
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Mã phiếu [" + txtMaPhieu4.Text + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwPDT2.DataSource = new object();
                            txtTongSo3.Clear();
                            btnXoa4.Enabled = false;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập mã phiếu !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;

                case 1:
                    if (txtMaBA4.Text.Trim() != "")
                    {
                        DataTable dt = phieudt.PhieuDieuTri_TimTheoMaBA_MaBS(manv, int.Parse(txtMaBA4.Text));
                        if (dt.Rows.Count != 0)
                        {
                            grwPDT2.DataSource = dt;
                            CanChinh3(grwPDT2);
                            txtTongSo3.Text = grwPDT2.RowCount.ToString();
                            btnXoa4.Enabled = true;
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Mã bệnh án [" + txtMaBA4.Text + "] không có phiếu điều trị !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwPDT2.DataSource = new object();
                            txtTongSo3.Clear();
                            btnXoa4.Enabled = false;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập mã bệnh án !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;

                case 2:
                    DataTable dt1 = phieudt.PhieuDieuTri_TimTheoNgayGhi_MaBS(manv, dtpNgayGhi.Value);
                    if (dt1.Rows.Count != 0)
                    {
                        grwPDT2.DataSource = dt1;
                        CanChinh3(grwPDT2);
                        txtTongSo3.Text = grwPDT2.RowCount.ToString();
                        btnXoa4.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Ngày [" + dtpNgayGhi.Value.ToShortDateString() + "] không có phiếu điều trị lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;

                case 3:
                    DataTable dt2 = phieudt.PhieuDieuTri_TimTheoThangGhi_MaBS(manv, dtpThangGhi.Value);
                    if (dt2.Rows.Count != 0)
                    {
                        grwPDT2.DataSource = dt2;
                        CanChinh3(grwPDT2);
                        txtTongSo3.Text = grwPDT2.RowCount.ToString();
                        btnXoa4.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Tháng [" + dtpThangGhi.Value.Month.ToString() + "/" + dtpThangGhi.Value.Year.ToString() + "] không có phiếu điều trị lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;
                case 4:
                    DataTable dt3 = phieudt.PhieuDieuTri_TimTheoNamGhi_MaBS(manv, dtpNamGhi.Value);
                    if (dt3.Rows.Count != 0)
                    {
                        grwPDT2.DataSource = dt3;
                        CanChinh3(grwPDT2);
                        txtTongSo3.Text = grwPDT2.RowCount.ToString();
                        btnXoa4.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Năm [" + dtpNamGhi.Value.Year.ToString() + "] không có phiếu điều trị lưu trữ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;
                case 5:
                    DataTable dt4 = phieudt.PhieuDieuTri_BNXuatVien();
                    if (dt4.Rows.Count != 0)
                    {
                        grwPDT2.DataSource = dt4;
                        CanChinh3(grwPDT2);
                        txtTongSo3.Text = grwPDT2.RowCount.ToString();
                        btnXoa4.Enabled = true;
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Không có phiếu điều trị của bệnh nhân đã xuất viện !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwPDT2.DataSource = new object();
                        txtTongSo3.Clear();
                        btnXoa4.Enabled = false;
                    }
                    break;
            }
        }

        private void btnNhapMoi4_Click(object sender, EventArgs e)
        {
            AnChon1();
            AnNhap1();
            HienChon1();
            btnXoa4.Enabled = false;
            btnTimKiem4.Enabled = false;
            grwPDT2.DataSource = new object();
            txtTongSo3.Clear();
            chkMaBA4.Checked = false;
            chkMaPhieu4.Checked = false;
            chkNgayGhi4.Checked = false;
            chkThangGhi4.Checked = false;
            chkNamGhi4.Checked = false;
        }

        private void btnLoad4_Click(object sender, EventArgs e)
        {
            grwPDT2.DataSource = phieudt.PhieuDieuTri_All(manv);
            CanChinh3(grwPDT2);
            txtTongSo3.Text = grwPDT2.RowCount.ToString();
            btnXoa4.Enabled = true;
        }

        private void btnXoa4_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn muốn xóa phiếu điều trị có mã [" + txtMaPhieu5.Text + "]?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    int kq = phieudt.PhieuDieuTri_Xoa(Convert.ToInt32(txtMaPhieu5.Text)); ;
                    if (kq != 0)
                    {
                        MessageBox.Show("Xóa thành công !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnLoad4.PerformClick();
                        return;
                    }
                    else
                        MessageBox.Show("Xóa thất bại, bệnh nhân có phiêu điều trị này chưa xuất viện !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                return;
            }
            catch
            { }
        }

        private void grwPDT2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int row = e.RowIndex;
            txtMaPhieu5.Text = grwPDT2.Rows[row].Cells[0].Value.ToString();
        }

        private void chkDaXuatVien4_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDaXuatVien4.Checked)
            {
                AnChon1();
                NhapMoi1();
                btnTimKiem4.Enabled = true;
                chkDaXuatVien4.Enabled = true;
            }
            else
            {
                HienChon1();
                AnNhap1();
                NhapMoi1();
                btnTimKiem4.Enabled = false;
            }
        }
        #endregion

        #region Ham chức năng khác
        private void grwDSHS2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int row = e.RowIndex;
                txtMaBA22.Text = grwDSHS2.Rows[row].Cells[0].Value.ToString();
            }
            catch
            { }
        }

        private void btnXoa2_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn muốn xóa hồ sơ bệnh án có mã [" + txtMaBA22.Text + "]?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    int kq = hoso.HoSoBA_Xoa(Convert.ToInt32(txtMaBA22.Text)); ;
                    if (kq != 0)
                    {
                        MessageBox.Show("Xóa thành công !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnLoad2.PerformClick();
                        return;
                    }
                    else
                        MessageBox.Show("Xóa thất bại, bệnh án này chưa đủ điều kiện quá 15 năm để xóa !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                return;
            }
            catch
            { }
        }

        private void btnHoanTat_Click(object sender, EventArgs e)
        {
            try
            {
                if (rtbKetQua5.Text.Trim() != "" && rtbQuaTrinhDieuTri5.Text.Trim() != "" && rtbQuaTrinhTheoDoi5.Text.Trim() != "")
                {
                    if (MessageBox.Show("Bạn có muốn hoàn tất hồ sơ này hay không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        int kq = hoso.HoSoBA_CapNhat_Full(int.Parse(txtMaBA5.Text), DateTime.Now.Date, rtbQuaTrinhTheoDoi5.Text, rtbQuaTrinhDieuTri5.Text,
                            rtbKetQua5.Text);
                        if (kq > 0)
                        {
                            MessageBox.Show("Hoàn tất hồ sơ thành công !", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            LoadDSBA1();
                            button7.PerformClick();
                            return;
                        }
                        else
                            MessageBox.Show("Hoàn tất hồ sơ thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                        return;
                }
                else
                    MessageBox.Show("Dữ liệu nhập không hợp lệ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch
            { }
        }

        private void button7_Click(object sender, EventArgs e)
        {
            rtbKetQua5.Clear();
            rtbQuaTrinhDieuTri5.Clear();
            rtbQuaTrinhTheoDoi5.Clear();
            txtMaBA5.Text = "";
            dtpNgayNhapVien5.Value = DateTime.Now.Date;
            txtHoTen5.Text = "";
            txtTuoi5.Text = "";
            txtGioiTinh5.Text = "";
            txtTrieuChung5.Text = "";
            txtChuanDoan5.Text = "";
            txtNhomBenh5.Text = "";
            txtNhomMau5.Text = "";
        }

        private void txtMaBA5_TextChanged(object sender, EventArgs e)
        {
            if (txtMaBA5.Text != "")
                btnHoanTat.Enabled = true;
            else
                btnHoanTat.Enabled = false;
        }

        private void txtTongSo2_TextChanged(object sender, EventArgs e)
        {
            if (txtTongSo2.Text.Trim() != "")
                btnXoa2.Enabled = true;
            else
                btnXoa2.Enabled = false;
        }
        #endregion
    }
}
